|
In object-oriented programming (OOP), an inner class or nested class is a class declared entirely within the body of another class or interface. It is distinguished from a subclass. ==Overview== An instance of a normal or top-level class can exist on its own. By contrast, an instance of an inner class cannot be instantiated without being bound to a top-level class. Let us take the abstract notion of a Car with four Wheel s. Our Wheel s have a specific feature that relies on being part of our Car . This notion does not represent the Wheel s as Wheel s in a more general form that could be part of a vehicle. Instead, it represents them as specific to this one. We can model this notion using inner classes as follows:We have the top-level class Car . Instances of class Car are composed of four instances of the class Wheel . This particular implementation of Wheel is specific to the car, so the code does not model the general notion of a wheel that would be better represented as a top-level class. Therefore, it is semantically connected to the class Car and the code of Wheel is in some way coupled to its outer class. The wheel rather is a composition unit of a car. The wheel for a particular car is unique to the car, but for generalization, the wheel is an aggregation unit to the car. Inner classes provide us with a mechanism to accurately model this connection. We say that our Wheel class is Car.Wheel , Car being the top-level class and Wheel being the inner class.Inner classes therefore allow for the object orientation of certain parts of the program that would otherwise not be encapsulated into a class. Larger segments of code within a class might be better modeled or refactored as a separate top-level class, rather than an inner class. This would make the code more general in its application and therefore more re-usable but potentially might be premature generalization. This may prove more effective, if code has many inner classes with the shared functionality. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Inner class」の詳細全文を読む スポンサード リンク
|